With conventional techniques, global information cannot be efficiently passed onto programs and instead, such information is retrieved by reading values from memory, once per thread, resulting in several redundant and high latency operations that inhibit performance. Even if values are capable of being stored in intermediate cache, conventional techniques are still inefficient in terms of system resources as they frequently cause performance bottlenecks in execution of programs.